import os
import string
import random


def sep(label=''):
    '''Utility function to print a separator line with optional lable.'''
    print('-'*16, label, '-'*16, sep='')


# (1)	添加主程序入口，
if '__main__' == __name__:

    # ①	获得当前路径，保存到curPath中
    curPath = os.getcwd()
    print(curPath)

    # ②	使用列表生成式，在列表中保存长度为5个任意字母的字符串，列表中元素的个数是5个，列表对象名为mlist；
    mlist = [''.join(random.choices(string.ascii_uppercase, k=5)) for i in range(5)]
    print(mlist)

    # ③	将curPath和列表中每个随机字符串，拼接成有效路径后，保存到一个新的列表randPathList；
    randPathList = [os.path.join(curPath, p) for p in mlist]
    print(randPathList)

    # ④	判断randPathList中每个路径是否存在，如果不存在则创建对应的文件夹；如果存在，则提示“文件夹已经存在”；
    for p in randPathList:
        if os.path.exists(p):
            print(f'{p}文件夹已经存在')
        else:
            os.mkdir(p)
            print(f'已经创建文件夹{p}')

    # ⑤	显示当前路径下所有的文件和文件夹；
    sep('⑤	显示当前路径下所有的文件和文件夹')
    allFilesAndDirs = os.listdir()
    for p in allFilesAndDirs:
        if os.path.isdir(p):
            print(f'文件夹: {p}')
        elif os.path.isfile(p):
            print(f'文件: {p}')

    # ⑥	显示当前路径下所有的文件；
    sep('⑥	显示当前路径下所有的文件')
    allFilesAndDirs = os.listdir()
    for p in allFilesAndDirs:
        if os.path.isfile(p):
            print(f'文件: {p}')
